package com.txzt.gaea.business.plan.service;

import com.txzt.base.core.RtnInfo;
import com.txzt.gaea.business.plan.domain.model.PlanInfo;
import com.txzt.gaea.business.plan.domain.query.PlanInfoQuery;
import com.txzt.gaea.common.base.service.BaseService;

import java.util.List;
import java.util.Map;

public interface IPlanInfoService extends BaseService<PlanInfo> {


    /**
     * 计划统计
     * @return
     */
    public List<Map> statisticsPlanInfo();

    public Long getTotal();

    Map getNumByStatus();

    /**
     * 新增项目申请
     * @param planInfo
     */
    public int savePlanInfo(PlanInfo planInfo);


    /**
     * 查询选中的数据
     * @param idList
     * @return
     */
    public List<PlanInfo> getSelectedData(List<Long> idList);

    /**
     * packId查询
     * @param packId
     */
    public List<PlanInfo> queryByPackId(Long packId);

    /**
     * id查询
     * @param id
     */
    public PlanInfo selectPlanInfoById(Long id);

    int updateInfo(PlanInfo planInfo);

    int updateInfoOnly(PlanInfo planInfo);

    /**
     * id查询
     * @param idList
     */
    public int removePackIdById(List<Long> idList);


    /**
     * 计划下发（生成项目）
     * @param ids
     * @return
     */
    public int assignPlanInfo(String ids);

    int removePackIdByIdSingle(Long id);

    /**
     *  计划撤回
     * @param planInfo
     * @return
     */
    int revocationPlanInfo(PlanInfo planInfo);

    /**
     * 待提交数据提交审核
     * @param id
     * @return
     */
    int submitPlanInfo(Long id);

    /**
     * 查询待审核数量(计划审核)
     * @param planInfoQuery
     * @return
     */
    Long listCheckCount(PlanInfoQuery planInfoQuery);

}
